package com.typexin.date;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;

public class Demo02Date {
    public static void main(String[] args) throws Exception {
        /*demo03();
        demo02();
        demo01();*/
        //function();

        demo1();
    }

    /*
        long getTime() 把日期转换为毫秒值(相当于System.currentTimeMillis()方法)
          返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。
     */
    private static void demo03() {
        Date date = new Date();
        long time = date.getTime();
        System.out.println(time);//3742777636267
        Date.parse("2012 9 9");
    }

    /*
        Date类的带参数构造方法
        Date(long date) :传递毫秒值,把毫秒值转换为Date日期
     */
    private static void demo02() {
        Date date = new Date(0L);
        System.out.println(date);// Thu Jan 01 08:00:00 CST 1970

        date = new Date(1640044800L);
        System.out.println("ds"+date);// Sun Aug 08 09:39:00 CST 2088
    }

    /*
        Date类的空参数构造方法
        Date() 获取当前系统的日期和时间
     */
    private static void demo01() {
        Date date = new Date();
        System.out.println(date);//Sun Aug 08 12:23:03 CST 2088
    }


    public static void function() throws Exception {

        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
        Date dt=sdf.parse("2021-12-21 08:00:00");
        long time = dt.getTime();
        String s = String.valueOf(time);
        //String str = "graap-banner-top-";
        String substring = s.substring(0,s.length()-3);
        System.out.println(substring);
        //System.out.println(dt.getTime());

/*
        System.out.println("请输入日期 格式 YYYY-MM-dd  HH:mm:ss");
        // 获取出生日期,键盘输入
        String birthdayString = new Scanner(System.in).next();
        // 将字符串日期,转成Date对象
        // 创建SimpleDateFormat对象,写日期模式
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd H:m:s");
        // 调用方法parse,字符串转成日期对象
        Date birthdayDate = sdf.parse(birthdayString);
        // 获取今天的日期对象
        Date todayDate = new Date();
        // 将两个日期转成毫秒值,Date类的方法getTime
        long birthdaySecond = birthdayDate.getTime();
        System.out.println(birthdaySecond);
        long todaySecond = todayDate.getTime();
        long secone = todaySecond-birthdaySecond;
        if (secone < 0){
            //System.out.println("还没出生呢");
        } else {
            System.out.println(secone/1000);		//1秒等于1000毫秒
        }*/
    }


    public static void demo1() throws ParseException {
        //获取当前时间毫秒值
        long time = System.currentTimeMillis();
        System.out.println(time);//1489330902308
    //用Dated对象获取当前时间
    Date date = new Date();
    System.out.println(date);
    //Sun Mar 12 23:02:36 CST 2017
    //将指定时间(毫秒值)传给Date构造器，自动转换为日期，后面记得加上L
        //1640044800.0 yymmdd
        //1489330902308l
        Date date3 = new Date(16400448000000l);
        System.out.println(date3.getTime());// Thu Jan 01 08:00:00 CST 1970
    Date date2=new Date(16400448000000l);
    System.out.println(date2);



        /*java.text.SimpleDateFormat f = new java.text.SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
        System.out.println("Date转String:"+f.format(date4.getTime()));
// String转Date
        Date date5 = null;
        try {
            date5 = f.parse("2018-01-22 08:31:28");
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        System.out.print("String转Date："+date5);*/
    }
}
